package com.dashu.park.service;



import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;


@Service
public class UserService {

    @Autowired
    private EntityManager entityManager;

    private JPAQueryFactory queryFactory;

    @PostConstruct
    public void initFactory() {
        queryFactory = new JPAQueryFactory(entityManager);
    }

//    public List<User> selec() {
//        QUser quser = QUser.user;
//        return queryFactory
//                .select(quser)
//                .from(quser)
//                .fetch();
//    }
//
//    public UserDTO login(String userName, String password) {
//        QUser quser = QUser.user;
//        DozerBeanMapper mapper = new DozerBeanMapper();
//        BooleanBuilder booleanBuilder = new BooleanBuilder();
//        booleanBuilder.and(quser.userName.eq(userName));
//        booleanBuilder.and(quser.userPass.eq(password));
//        User user = queryFactory
//                .select(quser)
//                .from(quser)
//                .where(booleanBuilder.getValue()).fetchFirst();
//        if (user == null) return null;
//        UserDTO userDTO = mapper.map(user, UserDTO.class);
//        return userDTO;
//
//
//    }
//
//    @Transactional
//    public boolean updataPass(UpdataUserVo updataUserVo) {
//        QUser quser = QUser.user;
//        QOperator qOperator = QOperator.operator;
//        BooleanBuilder booleanBuilder = new BooleanBuilder();
//        booleanBuilder.and(quser.id.eq(updataUserVo.getId()));
//        User user = queryFactory
//                .select(quser)
//                .from(quser)
//                .where(booleanBuilder.getValue()).fetchFirst();
//        if (user == null) return false;
//        if (updataUserVo.getUserPass() != null)
//            user.setUserPass(updataUserVo.getUserPass());
//        if (updataUserVo.getSubordinate() != null)
//            user.setSubordinate(updataUserVo.getSubordinate());
//        if (updataUserVo.getOperatorVO() != null)
//        if (updataUserVo.getSchools().size() > 0)
//        entityManager.merge(user);
////        long i = queryFactory
////                .update(quser)
////                .set(quser, user)
////                .where(booleanBuilder.getValue()).execute();
//        return true;
//    }
}
